//
//  WDGroMoreDelegateManager.h
//  WDGroMore
//
//  Created by little People on 2023/7/26.
//
//#import <BUAdSDK/BUAdSDK.h>

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@class BUNativeExpressRewardedVideoAd;
@class BUNativeExpressFullscreenVideoAd;
@class BUNativeExpressBannerView;
@class BUNativeAd;

NS_ASSUME_NONNULL_BEGIN

@protocol WDGroMoreAllDelegate <NSObject>

- (void)WDGroMoreConfig:(NSString *)userId;

#pragma mark ------------------------------------------------------------RewardVideo delegate

//广告是否有效
//ready：YES有效
- (void)WDGroMoreRewardAdReady:(BOOL)ready;

/// 广告跳过回调
/// - Parameter rewardVideoAd: WindMillRewardVideoAd 实例对象
- (void)WDGroMoreRewardVideoAdDidClickSkip:(BUNativeExpressRewardedVideoAd *)rewardVideoAd;

/// 广告加载成功
/// - Parameter rewardVideoAd: WindMillRewardVideoAd 实例对象
- (void)WDGroMoreRewardVideoAdDidLoad:(BUNativeExpressRewardedVideoAd *)rewardVideoAd;

//广告开始展示
//- rewardVideoAd: WindMillRewardVideoAd 实例对象
- (void)WDGroMoreRewardAdShow:(nonnull BUNativeExpressRewardedVideoAd *)rewardVideoAd;

//广告展示失败
/// - Parameters:
///   - rewardVideoAd: WindMillRewardVideoAd 实例对象
///   - error: 具体错误信息
- (void)WDGroMoreRewardVideoAdDidShowFailed:(BUNativeExpressRewardedVideoAd *)rewardVideoAd error:(NSError *)error;

/// 广告获得激励时回调
/// - Parameters:
///   - rewardVideoAd: WindMillRewardVideoAd 实例对象
///   - reward: 激励信息
- (void)WDGroMoreRewardedVideoAdServerRewardDidSucceed:(nonnull BUNativeExpressRewardedVideoAd *)rewardVideoAd;

/// 广告关闭回调
/// - Parameter rewardVideoAd: WindMillRewardVideoAd 实例对象
- (void)WDGroMoreRewardVideoDelegateWithClose:(BUNativeExpressRewardedVideoAd *)rewardVideoAd;

/// 广告视频播放完成或者视频播放出错
/// - Parameters:
///   - rewardVideoAd: WindMillRewardVideoAd 实例对象
///   - error: 具体错误信息
- (void)WDGroMoreRewardVideoAdDidPlayFinish:(BUNativeExpressRewardedVideoAd *)rewardVideoAd didFailWithError:(NSError *)error;

#pragma mark interstitital delegate

- (void)WDGroMoreIntersititialAdReady:(BOOL)ready;

/**
 This method is called when video ad is clicked skip button.
 */
- (void)WDGroMoreIntersititialAdDidClickSkip:(BUNativeExpressFullscreenVideoAd *)intersititialAd;

//广告开始展示
//- intersititialAd: WindMillIntersititialAd 实例对象
- (void)WDGroMoreIntersititialAdShow:(nonnull BUNativeExpressFullscreenVideoAd *)intersititialAd;

//广告展示失败
/// - Parameters:
///   - intersititialAd: WindMillIntersititialAd 实例对象
///   - error: 具体错误信息
- (void)WDGroMoreIntersititialAdDidShowFailed:(BUNativeExpressFullscreenVideoAd *)intersititialAd error:(NSError *)error;

/// 广告关闭回调
/// - Parameter intersititialAd: WindMillIntersititialAd 实例对象
- (void)WDGroMoreIntersititialAdDelegateWithClose:(BUNativeExpressFullscreenVideoAd *)intersititialAd;

/// 广告视频播放完成或者视频播放出错
/// - Parameters:
///   - intersititialAd: WindMillIntersititialAd 实例对象
///   - error: 具体错误信息
- (void)WDGroMoreIntersititialAdDidPlayFinish:(BUNativeExpressFullscreenVideoAd *)intersititialAd didFailWithError:(NSError *)error;

#pragma mark banner delegate

- (void)WDGroMoreBannerAdShow:(nonnull BUNativeExpressBannerView *)bannerAd;

/// 广告关闭回调
/// - Parameter bannerAd: WindMillBannerView 实例对象
- (void)WDGroMoreBannerAdDelegateWithClose:(BUNativeExpressBannerView *)bannerAd;

#pragma mark - 原生信息流广告代理

/// 信息流广告开始展示
/// - Parameter nativeAd: WindMillNativeAd 实例对象
- (void)WDGroMoreNativeAdDidShow:(nonnull BUNativeAd *)nativeAd;

/// 信息流广告展示失败
/// - Parameters:
///   - nativeAd: WindMillNativeAd 实例对象
///   - error: 具体错误信息
- (void)WDGroMoreNativeAdDidShowFailed:(nonnull BUNativeAd *)nativeAd error:(NSError *)error;

/// 信息流广告关闭回调
/// - Parameter nativeAd: WindMillNativeAd 实例对象
- (void)WDGroMoreNativeAdDidClose:(nonnull BUNativeAd *)nativeAd;

@end
@interface WDGroMoreDelegateManager : NSObject
+ (instancetype)manager;
@property (nonatomic, weak) id<WDGroMoreAllDelegate> delegate;
@end

NS_ASSUME_NONNULL_END
